#ifndef _NE_TANGENT_SPACE_CALCULATOR_H_
#define _NE_TANGENT_SPACE_CALCULATOR_H_

#include <mathematics/Vector3.h>

namespace ne
{
    class NEAPI TangentSpaceCalculator
    {
        public:
            TangentSpaceCalculator() {}

            virtual ~TangentSpaceCalculator() {}

        public:
            static Vector3 CalculateTangent(const Vector3 points[3],
                                            const Vector2 uvs[3]);

            static Vector3 CalculateBinormal(const Vector3 points[3],
                                             const Vector2 uvs[3]);

            static bool CalculateTangent(const Vector3 points[3],
                                         const Vector3 normals[3],
                                         const Vector2 uvs[3],
                                         Vector3 tangents[3]);
    };
}

#endif
